Generally described, computing devices utilize a communication network, or a series of communication networks, to exchange data. In a common embodiment, data to be exchanged is divided into a series of packets that can be transmitted between a sending computing device and a recipient computing device. In general, each packet can be considered to include two primary components, namely, control information and payload data. The control information corresponds to information utilized by one or more communication networks to deliver the payload data. For example, control information can include source and destination network addresses, error detection codes, and packet sequencing identification, and the like. Typically, control information is found in packet headers and trailers included within the packet and adjacent to the payload data.
In practice, in a packet-switched communication network, packets are transmitted between multiple physical networks, or sub-networks. Generally, the physical networks include a number of hardware devices that receive packets from a source network component and forward the packet to a recipient network component. The packet routing hardware devices are typically referred to as routers. Routers can operate with two primary functions or planes. The first function corresponds to a control plane, in which the router learns the set of outgoing interfaces that are most appropriate for forwarding received packets to specific destinations. The second function is a forwarding plane, in which the router sends the received packet to an outbound interface.
To execute the control plane functionality, routers maintain various packing routine information that identifies, among other things, packet attribute information, destination information, cost information for at least a subset of possible network addresses, such as Internet Protocol (“IP”) addresses. Typically, routers can maintain a routing table, or Routing Information Base (“RIB”) that include the packet routing information for a number of network addresses. Additionally, routers can also maintain a Forwarding Information Base (“FIB”) that include packet routing information for a smaller subset of network address. FIBs are typically optimized for faster lookup by a router. Utilizing locally maintained RIBs, FIBs or other routing tables, routers can receive and forward incoming packets.
In some embodiments, the status of a router or the availability of portions of the communication network accessible to a router may change. For example, a router may begin operating at less than optimal rates based on a volume of packets received and processed by the router. In another example, one or more portions of a communication network may experience hardware or software failures that prevent data communication. Based on dynamically changing conditions/availability, generally referred to as “Internet weather,” routers can utilize protocols, such as Border Gateway Protocol (“BGP”) to communicate general availability within a communication network or changes in availability of portions of a communication network. Based on the communicated availability, receiving routers can then update and reconfigure the locally maintained packet routing information, such as the RIB and FIB. Such updating mechanisms, however, can experience propagation delays and result in inefficient packet routing.